﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using HFW.Share;
using Janus.Windows.GridEX;

namespace HFW.AssetManagement.Catalogue
{
    public partial class Asset_DonViTinh : BaseForm
    {
        public Asset_DonViTinh()
        {
            InitializeComponent();
            this.Load += new EventHandler(Asset_DonViTinh_Load);
            this.filterEditor.FilterConditionChanged += new EventHandler(filterEditor_FilterConditionChanged);
        }

        void filterEditor_FilterConditionChanged(object sender, EventArgs e)
        {
            gridOverView.RootTable.FilterCondition = (IFilterCondition)filterEditor.FilterCondition;
        }

        void Asset_DonViTinh_Load(object sender, EventArgs e)
        {
            this.fncRefresh();
        }

        private void gridOverView_AddingRecord(object sender, CancelEventArgs e)
        {
            if (DialogResult.Yes == MessageBoxEX.Show("Xác nhận thay đổi dữ liệu", Applications.APPLICATION_TITLE_MESSAGEBOX, MessageBoxButtons.YesNo, MessageBoxIcon.Question))
            {
                using (var conn = new HFW.DataProvider.Connection())
                {
                    try
                    {
                        conn.RunDynamicSQLQuery("udp_Asset_DonViTinh_ups", new object[] { 0, gridOverView.GetValue("TenDVT").ToString() });
                        fncRefresh();
                    }
                    catch (Exception)
                    {
                        MessageBoxEX.Show("Error 18 : Lỗi kết nối cơ sở dữ liệu", Applications.APPLICATION_TITLE_MESSAGEBOX,
                                   MessageBoxButtons.OK,
                                   MessageBoxIcon.Error);
                        e.Cancel = true;
                    }

                }
            }
            else
            {
                e.Cancel = true;
                gridOverView.Refetch();
            }

        }

        private void gridOverView_UpdatingRecord(object sender, CancelEventArgs e)
        {
            if (DialogResult.Yes == MessageBoxEX.Show("Xác nhận thay đổi dữ liệu", Applications.APPLICATION_TITLE_MESSAGEBOX, MessageBoxButtons.YesNo, MessageBoxIcon.Question))
            {
                using (var conn = new HFW.DataProvider.Connection())
                {
                    try
                    {
                        conn.RunDynamicSQLQuery("udp_Asset_DonViTinh_ups", new object[] { Int32.Parse(gridOverView.GetValue("MaDVT").ToString()), gridOverView.GetValue("TenDVT").ToString() });
                        fncRefresh();
                        gridOverView.Refetch();
                    }
                    catch (Exception)
                    {
                        MessageBoxEX.Show("Error 19 : Lỗi kết nối cơ sở dữ liệu", Applications.APPLICATION_TITLE_MESSAGEBOX,
                                     MessageBoxButtons.OK,
                                     MessageBoxIcon.Error);
                        e.Cancel = true;
                    }
                    
                }
            }
            else
            {
                e.Cancel = true;
                gridOverView.Refetch();
            }
        }

        private void gridOverView_DeletingRecord(object sender, RowActionCancelEventArgs e)
        {
            if (DialogResult.Yes == MessageBoxEX.Show("Xác nhận xóa đơn vi tính '" + gridOverView.GetValue("TenDVT") + "'", Applications.APPLICATION_TITLE_MESSAGEBOX, MessageBoxButtons.YesNo, MessageBoxIcon.Question))
            {
                using (var conn = new HFW.DataProvider.Connection())
                {
                    try
                    {
                        object ok = conn.RunDynamicSQLScalar("udp_Asset_DonViTinh_del", new object[] { Int32.Parse(gridOverView.GetValue("MaDVT").ToString()) });
                        fncRefresh();
                        gridOverView.Refetch();
                        if (!(bool)ok)
                        {
                            MessageBoxEX.Show("Đã có tài sản sử dụng đơn vị tính này.", Applications.APPLICATION_TITLE_MESSAGEBOX, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            e.Cancel = true;
                        }

                    }
                    catch (Exception)
                    {
                        MessageBoxEX.Show("Error 20 : Lỗi kết nối cơ sở dữ liệu", Applications.APPLICATION_TITLE_MESSAGEBOX,
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Error);
                        e.Cancel = true;
                    }
                    
                }
            }
            else
            {
                e.Cancel = true;
            }
        }

        #region Override Standard ToolBar Methods from Base

        public override void fncSave()
        {
        }

        public override void fncDelete()
        {
        }

        public override void fncEdit()
        {
        }

        public override void fncRefresh()
        {
            using (var conn = new HFW.DataProvider.Connection())
            {
                try
                {
                    var dstemp = new DataSet();
                    dstemp = conn.RunSQLQuery("udp_Asset_DonViTinh_lst", CommandType.StoredProcedure);
                    gridOverView.DataSource = dstemp.Tables[0];
                }
                catch (Exception)
                {
                    MessageBoxEX.Show("Error 20 : Lỗi kết nối cơ sở dữ liệu", Applications.APPLICATION_TITLE_MESSAGEBOX,
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Error);
                }
               
            }
        }

        public override void fncAdd()
        {
        }

        public override void fncPrint()
        {
        }

        #endregion


    }
}
